/*
 * 文 件 名:  VelocityTemplateManager.java
 * 版    权:   深圳埃思欧纳信息咨询有限公司版权所有. YYYY-YYYY,  All rights reserved
 * 描    述:   <描述>
 * 修 改 人:  honny.huang
 * 修改时间: 2011-2-17
 * 跟踪单号:  <跟踪单号>
 * 修改单号:  <修改单号>
 * 修改内容:  <修改内容>
 */
package com.velocity;

import java.io.IOException;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Properties;

import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;

import com.ue.Config;

/**
 * <一句话功能简述> <功能详细描述>
 *
 * @author honny.huang
 * @version [版本号, 2011-2-17]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */

public class VelocityTemplateManager 
{

	public static void init(VelocityEngine ve,String path)
	{
      	//设置参数
		ve.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path);
        //处理中文问题
		ve.setProperty(Velocity.INPUT_ENCODING,"UTF-8");
		ve.setProperty(Velocity.OUTPUT_ENCODING,"UTF-8");
		//初始化，否则页面中文乱码
		ve.init();
	}
	
	public static String get(String strTemplateName) 
	{
		String strTemplate = Config.ApplicationPath + "template/" + strTemplateName + ".vm";
		return strTemplate;
	}
	
	public static void velocityInit()
	{
		Properties p=new Properties();    
        p.setProperty(Velocity.INPUT_ENCODING,"UTF-8");    
        p.setProperty(Velocity.OUTPUT_ENCODING,"UTF-8");    
        Velocity.init(p); 
	}
	
	 public static String builder(Template t,HashMap<String, String> param)
	 {
		 VelocityContext context = new VelocityContext();
         Iterator<String> it = param.keySet().iterator();
         while (it.hasNext()) 
         {
		     String key=it.next().toString();
		     String value=String.valueOf(param.get(key));
		     context.put(key,value); 
		 }
	     StringWriter writer = new StringWriter(); 
		 //转换输出 
		 t.merge(context, writer); 
		 String templateContent = writer.toString();
		 writer.flush();    
	     try 
	     {
			writer.close();
		 }catch (IOException e) 
		 {
			e.printStackTrace();
		 }    
        return templateContent;
	 }
}
